#-*- coding:utf-8 -*-
from django.shortcuts import render,HttpResponse

# Create your views here.

import re
from django.core.exceptions import ValidationError
def mobile_validate(value):
    mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$')
    if not mobile_re.match(value):
        raise ValidationError('手机号码格式错误')
from django import forms

class UserInfo(forms.Form):    #必须继承自forms.Form
    user_type_choice = (
        (0, u'普通用户'),
        (1, u'高级用户'),
    )
    user_type = forms.IntegerField(widget=forms.widgets.Select(choices=user_type_choice,attrs={'class': "form-control"}))
    email=forms.EmailField(
        required=False,
        error_messages={'required': u'邮箱不能为空','invalid': u'邮箱格式错误'},
        widget=forms.TextInput(attrs={'class': "form-control", 'placeholder': u'邮箱'})
    )
    host=forms.CharField()
    port= forms.CharField()
    mobile= forms.CharField(
        validators=[mobile_validate, ],
        error_messages={'required': u'手机不能为空'},
        widget=forms.TextInput(attrs={'class': "form-control",'placeholder': u'手机号码'})
    )

def user_list(request):
    obj=UserInfo()
    if request.method=="POST":
        user_input_obj = UserInfo(request.POST) #将所有提交的数据交给自定义form类
        if user_input_obj.is_valid():   #判断提交的数据是否合法
            data = user_input_obj.clean()   #如果合法，打印所有信息
            print data
        else:    #如果不合法，将所有错误信息返回给页面，到页面后再利用变量的取值输出每个错误
            error_msg = user_input_obj.errors
            return render(request,'user_list.html',{'obj':user_input_obj,'errors':error_msg})
    return render(request,'user_list.html',{'obj':obj})

import json
def ajax_data_set(request):
    ret = {'status':True,'error':""}    #默认ajax成功返回的格式
    try:                                #如果提交成功，打印提交的数据，返回ret
        print request.PO                #故意写错，抛出异常。
    except Exception,e:                 #当出错异常，修改返回值
        ret['status']=False
        ret['error']=str(e)
    return HttpResponse(json.dumps(ret))    #只能返回字符串